home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / list / RCS / List_Move.c,v < prev    next >
Text File  |  1990-11-27  |  3KB  |  129 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.3
  10. date     90.11.27.11.06.32;  author ouster;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     90.09.11.14.25.08;  author kupfer;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     88.06.20.09.27.28;  author ouster;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.3
  30. log
  31. @Eliminated inclusion of <sys.h> (didn't work for user programs
  32. anyway), add explicit declaration for panic.
  33. @
  34. text
  35. @/* 
  36.  * List_Move.c --
  37.  *
  38.  *    Source code for the List_Move library procedure.
  39.  *
  40.  * Copyright 1988 Regents of the University of California
  41.  * Permission to use, copy, modify, and distribute this
  42.  * software and its documentation for any purpose and without
  43.  * fee is hereby granted, provided that the above copyright
  44.  * notice appear in all copies.  The University of California
  45.  * makes no representations about the suitability of this
  46.  * software for any purpose.  It is provided "as is" without
  47.  * express or implied warranty.
  48.  */
  49.  
  50. #ifndef lint
  51. static char rcsid[] = "$Header: /sprite/src/lib/c/list/RCS/List_Move.c,v 1.2 90/09/11 14:25:08 kupfer Exp Locker: ouster $ SPRITE (Berkeley)";
  52. #endif not lint
  53.  
  54. #include <stdio.h>
  55. #include "list.h"
  56.  
  57. extern void panic();
  58.  
  59. /*
  60.  * ----------------------------------------------------------------------------
  61.  *
  62.  * List_Move --
  63.  *
  64.  *    Move the list element referenced by itemPtr to follow destPtr.
  65.  *
  66.  * Results:
  67.  *    None.
  68.  *
  69.  * Side effects:
  70.  *    List ordering is modified.
  71.  *
  72.  * ----------------------------------------------------------------------------
  73.  */
  74. void
  75. List_Move(itemPtr, destPtr)
  76.     register List_Links *itemPtr; /* list element to be moved */
  77.     register List_Links *destPtr; /* element after which it is to be placed */
  78. {
  79.     if (itemPtr == (List_Links *) NIL || destPtr == (List_Links *) NIL
  80.         || !itemPtr || !destPtr) {
  81.     panic("List_Move: One of the list items is NIL.\n");
  82.     }
  83.     /*
  84.      * It is conceivable that someone will try to move a list element to
  85.      * be after itself.
  86.      */
  87.     if (itemPtr != destPtr) {
  88.     /*
  89.      * Remove the item.
  90.      */
  91.         itemPtr->prevPtr->nextPtr = itemPtr->nextPtr;
  92.     itemPtr->nextPtr->prevPtr = itemPtr->prevPtr;
  93.     /*
  94.      * Insert the item at its new place.
  95.      */
  96.     itemPtr->nextPtr = destPtr->nextPtr;
  97.     itemPtr->prevPtr = destPtr;
  98.     destPtr->nextPtr->prevPtr = itemPtr;
  99.     destPtr->nextPtr = itemPtr;
  100.     }    
  101. }
  102. @
  103.  
  104.  
  105. 1.2
  106. log
  107. @Lint.
  108. @
  109. text
  110. @d17 1
  111. a17 1
  112. static char rcsid[] = "$Header: /sprite/src/lib/c/list/RCS/List_Move.c,v 1.1 88/06/20 09:27:28 ouster Exp Locker: kupfer $ SPRITE (Berkeley)";
  113. a20 1
  114. #include <sys.h>
  115. d23 1
  116. @
  117.  
  118.  
  119. 1.1
  120. log
  121. @Initial revision
  122. @
  123. text
  124. @d17 1
  125. a17 1
  126. static char rcsid[] = "$Header: proto.c,v 1.2 88/03/11 08:39:08 ouster Exp $ SPRITE (Berkeley)";
  127. d21 1
  128. @
  129.